/**
 * 用于定义机构树的节点拖放规则
 */
Ext.namespace("Ext.ux");

Ext.ux.OrgTreeDropZone = Ext.extend(Ext.tree.TreeDropZone, {
	isValidDropPoint: function(n, pt, dd, e, data) {
		var result = Ext.ux.OrgTreeDropZone.superclass.isValidDropPoint.call(this, n, pt, dd, e, data);
		if(result) {
			var targetNode = n.node;	//被拖动节点指向的目标节点
        	var dropNode = data.node;	//被拖动节点
        	
        	// 目前暂不允许拖动岗位节点
        	if(dropNode.attributes.partyType === 'POSITION')
        		return false;
        	// 如果目标节点为用户节点，则不允许drop
        	if(targetNode.attributes.partyType === 'USER')
        		return false;
        	// 如果拖动节点的父节点就是目标节点，则不允许drop
        	if(dropNode.parentNode.id == targetNode.id)
        		return false;
        	// 如果拖动的是机构节点且目标节点不是机构，则不允许drop
        	if(dropNode.attributes.partyType === 'ORG' && targetNode.attributes.partyType != 'ORG')
        		return false;
        		
			return result;
		}
		return false;
	}
});